Industrial control systems have enabled modern factories to become partially or completely automated in many circumstances. These systems generally include a plurality of Input and Output (I/O) modules that interface at a device level to switches, contactors, relays and solenoids along with analog control to provide more complex functions such as Proportional, Integral and Derivative (PID) control. Communications have also been integrated within the systems, whereby many industrial controllers can communicate via network technologies such as Ethernet, Control Net, Device Net or other network protocols and also communicate to higher level computing systems. Industrial controllers utilize the aforementioned technologies along with other technology to control multiple applications ranging from complex and highly distributed to more traditional and repetitious applications. As an example, steel and automobile production often require control and integration with complex welding and/or robotic systems whereas, a transfer or automated assembly line can produce hundreds of thousands of similar items in a more traditional industrial control situation.
At the core of the industrial control system, is a logic processor such as a Programmable Logic Controller (PLC). Programmable Logic Controllers are programmed by systems designers to operate manufacturing processes via user-designed logic programs or user programs. The user programs are stored in memory and generally executed by the PLC in a sequential manner although instruction jumping, looping and interrupt routines, for example, are also common. Associated with the user program are a plurality of memory elements or variables that provide dynamics to PLC operations and programs. These variables can be user-defined and can be defined as bits, bytes, words, integers, floating point numbers, timers, counters and/or other data types to name but a few examples.
As can be appreciated, various remote applications often attempt to acquire PLC information or data in order to service other automation requirements. One such application includes a Human and Machine Interface (HMI) that can reside on a remote client machine to enable PLC Engineers or Operators to manipulate and/or monitor PLC control programs and associated variables, for example. Human and Machine Interfaces along with other remote applications often employ network communications and associated drivers or servers to transfer information between the application and the PLC. For example, one common network transfer protocol is referred to as Control and Information Protocol (CIP) that is an application layer protocol that can be specified for Ethernet/IP (Ethernet Industrial Protocol), as well as for ControlNet, DeviceNet and/or other protocols.
Control and Information Protocol is a message-based protocol that implements a relative path to send a message from one or more “producing” devices to one or more “consuming” devices. The producing device can include path information that directs the messages to reach the consumers. Since the producing device holds the path information, other devices along the path can simply pass the information. In traditional PLC systems, controllers poll input modules to obtain their input status. In CIP systems, digital input modules or other producers are not polled by the controller, for example. Instead, these modules produce (“multicast”) associated data either upon a change of state (COS) or periodically. The frequency of update depends upon options chosen during network configuration and where on the network the input module resides. The input module, therefore, is a producer of input data and the controller and/or communications module is a consumer of the data. The PLC can also produce data for other controllers or applications to consume and/or can produce data for other modules to consume such as an output module, for example.
Presently, if remote access of a data type is requested from the PLC via a CIP or other type request for example, the requested data is placed into a communications packet having an associated overhead. The overhead includes a header and ending field, for example, that supports the protocol and encapsulates the data before being transferred to the remote application for processing. If multiple and/or unrelated data types are requested from the PLC however, respective data types can be placed in separate communications packets, wherein the associated packet includes the overhead described above. Consequently, communications efficiency can be reduced since multiple data type transfer requests between PLC's and remote applications can cause increasing amounts of network and communications overhead as the number of data requests increase.